package fr.afcepf.atod19.groupeJV.data.implementations;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import fr.afcepf.atod19.groupeJV.data.interfaces.IDataProduit;
import fr.afcepf.atod19.groupeJV.entity.Produit;
import fr.afcepf.atod19.groupeJV.entity.Support;

@Stateless
public class DataProduitImpl implements IDataProduit {
	@PersistenceContext(unitName="ProjetAtod")
	EntityManager em;
	
	public List<Produit> getAllProduit() {
		Query query = em.createQuery(	"FROM				Produit p " +
										"INNER JOIN FETCH	p.support " +
										"INNER JOIN FETCH	p.jeu j " +
										"INNER JOIN FETCH	j.editeur " +
										"INNER JOIN FETCH	j.genre ");
		@SuppressWarnings("unchecked")
		List<Produit> retour = query.getResultList();
		return retour;
	}
	
	public Produit getProduitById(int idProduit) {
		Query query = em.createQuery(	"FROM				Produit p " +
										"INNER JOIN FETCH	p.support " +
										"INNER JOIN FETCH	p.jeu j " +
										"INNER JOIN FETCH	j.editeur " +
										"INNER JOIN FETCH	j.genre " +
										"WHERE				p.idProduit = :pIdProduit");
		query.setParameter("pIdProduit", idProduit);
		return (Produit) query.getSingleResult();
	}
	
	public List<Produit> rechercherProduitSupport(Support suppot) {
		
		return null;
	}
	
}
